In contemporary computing, an installable software component generally includes a description of its constituent parts, such as code files, resource files, configuration settings, dependencies and execution requirements. This description referred to as a manifest. For example, in the Windows® Vista™ operating system, operating system components have manifest files (.MAN files), device drivers have INF files, and Windows® Installer applications have MSI files. Each of these file types is a specific example of a manifest.
The operating system (or installer component) relies on accurate information in the component manifest in order to properly install and maintain the installation state of a component. The manifest provides this information to the installer, and the installer's job at installation time is to transform the component from its distribution form (which may be a compressed archive, for example) into its runtime form. If the manifest information is not correct, such as due to an authoring error, the installer believes it succeeded in installing the component, when in fact the error may cause the component to fail to properly execute. An error in a single component's manifest can impact the proper operation of other components that depend on it. An error can also cause working components to be replaced by a non-working component.
Sometimes, component developers make errors in their development that result in incorrect information in the component's manifest. At other times, the definition of a manifested property becomes stricter at a later time. For example, an API contract may not be precise enough about the speed at which the API returns its result. A component developer may author a component to that API contract, only to discover later that the API contract was clarified to specify a performance requirement that cannot be satisfied. In either case, if the component has already shipped with an error or errors in its manifest, problems will occur. The developer may choose to correct the errors in a future release of the component, but that does not help customers to whom the component has already shipped.